// pages/chat/chat.js
const app=getApp()
Page({

//   /**
//    * 页面的初始数据
//    */
  data: {
 // 是否连接
 isConnect: false,
 list: [],
 // 输入的内容
 value: ''
  },

//   /**
//    * 生命周期函数--监听页面加载
//    */
  onLoad: function (options) {
//     console.log(options);
// console.log(options.id);
// 登录后能进入
app.globalData.loginPromise.then((res)=>{
  const userInfo=app.globalData.userInfo
//   // 用户名
//   console.log(userInfo);
  this.userName=userInfo.loginName;
//   // 分组id表示聊天室 group id 来区分不同的聊天室
   //分组id
   this.groupId="web09"+options.id
   this.nickname=userInfo.userName
   this.avatar=userInfo.avatar
//   // 1.建立链接wss://showme.myhope365.com/websocketChat（上线必须） 或者 ws://59.111.104.209:13000
  wx.connectSocket({
    url: `wss://showme.myhope365.com/websocketChat?username=${this.userName}&password=123&courseId=${this.groupId}&nickName=${this.nickname}&avatar=${this.avatar}`,
  })
      // 打开连接
      wx.onSocketOpen((result) => {
        this.setData({
          isConnect: true
        })
        // })
        // 可以发送消息了
        // 一上来先要获取原来的历史记录
        const historyMsg = {
          cmd: 19, // 命令 
          type: 1, // 类型 固定值
          groupId: this.groupId, //  分组的id
          userId: this.userName // 用户id（这里可以用loginName）
        }
        wx.sendSocketMessage({
          data: JSON.stringify(historyMsg),
        })
         // 接收消息
      wx.onSocketMessage((result) => {
        // console.log(result);
        const data = JSON.parse(result.data)
        console.log(data);
        if (data.command === 20 && data.code === 10018) {
          // 如果历史记录不为空的话
          if(data.data.groups && data.data.groups[this.groupId]){
            this.data.list=data.data.groups[this.groupId]
            // console.log( this.data.list);
            this.setData({
              list: this.data.list
            })
          }
        }
      })
      })
    })

  },
  // 发送消息
  sendMsg() {
    // 建立连接以后才可以发送消息
    if (this.data.isConnect == false) {
      wx.showToast({
        title: '正在连接中........',
        icon:"none"
      })
      return
    }
    if (this.data.value == "") {
      wx.showToast({
        title: '发送内容不能为空',
        icon:"none"
      
      })
      return
    }
    const msgbody = {
      from: this.userName, // 发送人，当前用户的用户名
      createTime: new Date().getTime(), // 发送时间
      cmd: 11, // 命令固定内容
      group_id: this.groupId, // 分组id。  想要发送到哪个组里
      chatType: 1, //  聊天类型 固定内容
      msgType: 0, // 消息类型 固定内容
      content: this.data.value, // 消息内容，自己设计结构，比如你想发送图片（图片上传的接口）
      nickName: this.nickName, // 用户昵称
      avatar: this.avatar, // 用户头像
      type: "1" // 消息类型。 你可以自己设计，发送过去是什么，返回的就是什么（1: 普通文本 2: 图片 3：点赞 4， 送花）
    }
    // 发送消息
    // console.log(this.data.value);
    wx.sendSocketMessage({
      data: JSON.stringify(msgbody),
    })
       // 接收消息
      wx.onSocketMessage((result) => {
        console.log("来信了");
        console.log(result);
        const data = JSON.parse(result.data)
        console.log(data);
        if (data.command == 11) {
          this.data.list.push(data.data)
          console.log( this.data.list);
          this.setData({
            list: this.data.list
          })
        }
      })
  }


})